// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
/*jshint esversion: 6 */
import Vue from 'vue'
import App from './App'
import router from './router'
// 引入axios
import axios from 'axios'
// 引入element框架 B
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
// 引入element框架E
// 引入Vuex仓库
import store from './store'
// 绑定elementUi
Vue.use(ElementUI);
// 引入公共样式
import './assets/styles/reset.css'
// 取消border
import './assets/styles/border.css'
// 图标字体
import 'font-awesome/css/font-awesome.css'
// cookie JS
import cookie from 'js-cookie'
// 设置公共JS
import base from './assets/js/base'
// 绑定到Prototype对象上
Vue.prototype.base = base
// 取消提示
Vue.config.productionTip = false
// axios添加请求拦截器,在发送请求之前做些什么
axios.interceptors.request.use(config => {
  //判断是否存在token，如果存在将每个页面header都添加token
  if (cookie.get('token')) {
    config.headers.common['token'] = cookie.get('token')
  }
  return config;
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error);
});
// axios添加请求拦截器,在请求返回后做些什么
axios.interceptors.response.use(res => {
  // 如果过期就移除cookie跳转到登录页面
  if (res.data.status === 4000) {
    cookie.remove("username");
    cookie.remove("password");
    cookie.remove("token");
    cookie.remove("usericon");
    cookie.remove("role");
    // 关闭聊天
    // this.$socket.close();
    // 离线
    this.online = false;
    // 设置为默认头像
    this.usericon = "../../static/images/portraiticon/0.jpg";
    ElementUI.Message.error('长时间未登录，3秒后跳转到登录页面！')
    //跳转登陆页面
    setTimeout(() => {
      router.push("/login");
    }, 3000)
  } else {
    return res;
  }
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error);
});

new Vue({
  el: '#app',
  store,
  router,
  components: {
    App
  },
  render: h => h(App),
  template: '<App/>'
})
